package cn.micai.base.concurrent;

/**
 * 描述：会发现 10 个线程运行中，没有重复的数字，原子量类使用本机 CAS 实现了值修改的原子性
 * <p>
 *
 * @author: 赵新国
 * @date: 2018/5/14 10:59
 */
public class AtomicCounterTest extends Thread {

    AtomicCounter counter;

    public AtomicCounterTest(AtomicCounter counter) {
        this.counter = counter;
    }

    @Override
    public void run() {
        int i = counter.increment();
        System.out.println("generated number: " + i);
    }

    public static void main(String [] args) {
        AtomicCounter counter = new AtomicCounter();
        // 10个线程
        for (int i=0; i<10; i++) {
            new AtomicCounterTest(counter).start();
        }
    }

}
